import { constants } from '@/common/constants'

module.exports = (vm) => {
    uni.$u.http.setConfig(config => {
        config.baseURL = constants.HTTP_BASE_URL;
		// config.header['content-type'] = 'application/json; charset=UTF-8'
		console.log(config)
        return config
    })

    uni.$u.http.interceptors.request.use((config) => {
		// 初始化请求拦截器时，会执行此方法，此时data为undefined，赋予默认{}
        config.data = config.data || {}
		
		// 根据配置，添加对应的请求头
		let token = uni.getStorageSync(constants.STORAGE_TOKEN_KEY) || ''
		
		config.header = {
			...config.header,
			authorization: token
		}
        return config
    }, config => {
        return Promise.reject(config)
    })
    
    uni.$u.http.interceptors.response.use((response) => { 
		uni.hideLoading()
		
        const { data, header, config } = response
		
        // // 判断返回值，判断是否提示调用成功
        // if(config.custom.toastMsg === true) {
        //     uni.showToast({ title: data.msg, icon: 'none', duration: 2000 })
        // }
        // // 根据返回状态，判断一些操作
        // if(data.code === 404){
        //     // 跳转到404页面
        //     uni.navigateTo({
        //         url: '/subPages/login/index'
        //     });
        // }else if(data.code === '登录过期'){
        //     // 1.清除token
        //     store.commit('setToken', '')
        //     // 2.清除购物车
        //     store.dispatch('cart/secedeUpdataCart')
        //     // 3.跳转到登录页面
        //     uni.redirectTo({ url: '/subPages/login/index' })
        //     return 
        // }else{
        //     // 登录失败
        //     uni.navigateTo({
        //         url: '/subPages/login/index'
        //     });
        // }
        // 接口成功调用，返回数据data
        return data.data
    }, (response) => {
		if (response.data) {
			const { code } = response.data
			if (code !== 200) {
				setTimeout(() => {
					uni.showToast({
						title: response.data.message,
						icon: 'none'
					})
				})
			}
			// 对响应错误做点什么 （statusCode !== 200）
			if (code === 401) {
				uni.setStorageSync(constants.STORAGE_TOKEN_KEY, '')
				uni.navigateTo({
				    url: '/packages/center/login'
				})
			}
		}
		
        return Promise.reject(response)
    })
}